

#if 0

#include "Grammar.h"

#define TEST_E	0x00100001

#define TEST_A	0x00100002
#define TEST_B	0x00100003

#define TEST_a	0x00010001
#define TEST_b	0x00010002
#define TEST_c	0x00010003
#define TEST_d	0x00010004

REGISTER_SPETIAL_TOKEN("a",TEST_a);
REGISTER_SPETIAL_TOKEN("b",TEST_b);
REGISTER_SPETIAL_TOKEN("c",TEST_c);
REGISTER_SPETIAL_TOKEN("d",TEST_d);

REGISTER_NONTERMINATE_TOKEN("E",TEST_E);
REGISTER_NONTERMINATE_TOKEN("A",TEST_A);
REGISTER_NONTERMINATE_TOKEN("B",TEST_B);


class CProduction_TestS1 : public CProduction
{
public:
	PRODUCTION(TOKEN_START,
		TEST_a,TEST_A);

};
REGISTER_PRODUCTION_CLASS(CProduction_TestS1);

class CProduction_TestS2 : public CProduction
{
public:
	PRODUCTION(TOKEN_START,
		TEST_b,TEST_B);
};
REGISTER_PRODUCTION_CLASS(CProduction_TestS2);

class CProduction_TestS3 : public CProduction
{
public:
    PRODUCTION(TOKEN_START,
        TOKEN_EMPTY);
};
REGISTER_PRODUCTION_CLASS(CProduction_TestS3);


class CProduction_TestA1 : public CProduction
{
public:
	PRODUCTION(TEST_A,
		TEST_c,TEST_A);
};
REGISTER_PRODUCTION_CLASS(CProduction_TestA1);

class CProduction_TestA2 : public CProduction
{
public:
	PRODUCTION(TEST_A,
		TEST_d);

};
REGISTER_PRODUCTION_CLASS(CProduction_TestA2);

class CProduction_TestB1 : public CProduction
{
public:
	PRODUCTION(TEST_B,
		TEST_c,TEST_B);
};
REGISTER_PRODUCTION_CLASS(CProduction_TestB1);

class CProduction_TestB2 : public CProduction
{
public:
	PRODUCTION(TEST_B,
		TEST_d);
};
REGISTER_PRODUCTION_CLASS(CProduction_TestB2);

#endif